package com.augurit.smartform.service;


import java.util.List;

import com.augurit.smartform.web.component.form.ComponentDefinitionForm;
import com.augurit.smartform.web.component.form.ComponentRegisterForm;

public interface IComponentRegisterService {
	/**
	 * 根据主键获取Form对象
	 */
	public ComponentRegisterForm get(Long id);
	
	/**
	 * 获取系统所有组件注册目录
	 * @return
	 */
	public List<ComponentRegisterForm> getAllComponentRegister();
	
	/**
	 * 保存并注册组件目录
	 * @param form
	 */
	public void saveAndRegist(ComponentRegisterForm form);
	
	/**
	 * 注册组件
	 * @param form
	 */
	public void regist(ComponentDefinitionForm form);
	
	/**
	 * 注销组件
	 * @param form
	 */
	public void unRegist(ComponentDefinitionForm form);
	
	/**
	 * 删除并注销组件
	 * @param id
	 */
	public void deleteAndUnregist(ComponentRegisterForm form);
	
	/**
	 * 通过组件目录名称进行查找
	 * @param name
	 * @return
	 */
	public ComponentRegisterForm queryByName(String name);
	
	/**
	 * 禁用并注销组件
	 * @param form
	 */
	public void disable(ComponentRegisterForm form);
	
	/**
	 * 启用并注册组件
	 * @param form
	 */
	public void enable(ComponentRegisterForm form);
	
	/**
	 * 获取组件注册文件
	 * @return
	 */
	public ComponentRegisterForm getRegistFile();
}
